package cn.px.service.store;

import cn.px.dao.vo.query.store.SpareStoreVO;
import cn.px.dao.dto.store.SpareStoreDTO;
import cn.px.dao.entity.store.SpareStore;
import cn.px.common.bean.AbstractPageResultBean;
import cn.px.service.base.IBaseService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Description 备件库存 service
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
 */
public interface SpareStoreService extends IBaseService<SpareStore, SpareStoreDTO> {

   /**
    * 批量删除
    *
    * @param ids ：
    * @return ：
    */
    int batchDelete(List<String> ids);

    /**
     * 分页查询
     * @param record
     * @param pageNum
     * @param pageSize
     * @return
     */
    AbstractPageResultBean<SpareStoreVO> selectPageList(SpareStoreDTO record, int pageNum, int pageSize);

    List<SpareStoreVO> getListByDTO(SpareStoreDTO record);

    /**
     * 分页查询备件的总库存
     *
     * @param record
     * @param pageNum
     * @param pageSize
     * @return
     */
    AbstractPageResultBean<SpareStoreVO> selectTotalStockPageInfo(SpareStoreDTO record, int pageNum, int pageSize);
    List<SpareStoreVO> selectTotalStock(SpareStoreDTO record);
    /**
     * 查询单个备件的库存
     *
     * @param record
     * @return
     */
    SpareStoreVO selectOneTotalStock(SpareStoreDTO record);
    /**
     * 查看详情
     * @param id
     * @return
     */
    SpareStoreVO getDetail(Object id);

    void importListByUpdate(MultipartFile file);

    void updateQrCode(SpareStoreDTO sbInfoDTO);

    /**
     * 生成仓库财务月报表
     */
    void generateStoreReport();

    List<SpareStoreVO> selectFinanceReportList(String projectId, SpareStoreDTO spareStoreDTO, int type);
}
